home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / linux / hayesesp.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.7 KB  |  116 lines

  1. #ifndef HAYESESP_H
  2. #define HAYESESP_H
  3.  
  4. struct hayes_esp_config {
  5.     short flow_on;
  6.     short flow_off;
  7.     short rx_trigger;
  8.     short tx_trigger;
  9.     short pio_threshold;
  10.     unsigned char rx_timeout;
  11.     char dma_channel;
  12. };
  13.  
  14. #ifdef __KERNEL__
  15.  
  16. #define ESP_DMA_CHANNEL   0
  17. #define ESP_RX_TRIGGER    768
  18. #define ESP_TX_TRIGGER    768
  19. #define ESP_FLOW_OFF      1016
  20. #define ESP_FLOW_ON       944
  21. #define ESP_RX_TMOUT      128
  22. #define ESP_PIO_THRESHOLD 32
  23.  
  24. #define ESP_IN_MAJOR    57    /* major dev # for dial in */
  25. #define ESP_OUT_MAJOR    58    /* major dev # for dial out */
  26. #define ESPC_SCALE     3
  27. #define UART_ESI_BASE    0x00
  28. #define UART_ESI_SID    0x01
  29. #define UART_ESI_RX    0x02
  30. #define UART_ESI_TX    0x02
  31. #define UART_ESI_CMD1    0x04
  32. #define UART_ESI_CMD2    0x05
  33. #define UART_ESI_STAT1    0x04
  34. #define UART_ESI_STAT2    0x05
  35. #define UART_ESI_RWS    0x07
  36.  
  37. #define UART_IER_DMA_TMOUT    0x80
  38. #define UART_IER_DMA_TC        0x08
  39.  
  40. #define ESI_SET_IRQ        0x04
  41. #define ESI_SET_DMA_TMOUT    0x05
  42. #define ESI_SET_SRV_MASK    0x06
  43. #define ESI_SET_ERR_MASK    0x07
  44. #define ESI_SET_FLOW_CNTL    0x08
  45. #define ESI_SET_FLOW_CHARS    0x09
  46. #define ESI_SET_FLOW_LVL    0x0a
  47. #define ESI_SET_TRIGGER        0x0b
  48. #define ESI_SET_RX_TIMEOUT    0x0c
  49. #define ESI_SET_FLOW_TMOUT    0x0d
  50. #define ESI_WRITE_UART        0x0e
  51. #define ESI_READ_UART        0x0f
  52. #define ESI_SET_MODE        0x10
  53. #define ESI_GET_ERR_STAT    0x12
  54. #define ESI_GET_UART_STAT    0x13
  55. #define ESI_GET_RX_AVAIL    0x14
  56. #define ESI_GET_TX_AVAIL    0x15
  57. #define ESI_START_DMA_RX    0x16
  58. #define ESI_START_DMA_TX    0x17
  59. #define ESI_ISSUE_BREAK        0x1a
  60. #define ESI_FLUSH_RX        0x1b
  61. #define ESI_FLUSH_TX        0x1c
  62. #define ESI_SET_BAUD        0x1d
  63. #define ESI_SET_ENH_IRQ        0x1f
  64. #define ESI_SET_REINTR        0x20
  65. #define ESI_SET_PRESCALAR    0x23
  66. #define ESI_NO_COMMAND        0xff
  67.  
  68. #define ESP_STAT_RX_TIMEOUT    0x01
  69. #define ESP_STAT_DMA_RX        0x02
  70. #define ESP_STAT_DMA_TX        0x04
  71. #define ESP_STAT_NEVER_DMA      0x08
  72. #define ESP_STAT_USE_PIO        0x10
  73.  
  74. #define ESP_MAGIC        0x53ee
  75. #define ESP_XMIT_SIZE        4096
  76.  
  77. struct esp_struct {
  78.     int            magic;
  79.     struct tty_port        port;
  80.     spinlock_t        lock;
  81.     int            io_port;
  82.     int            irq;
  83.     int            read_status_mask;
  84.     int            ignore_status_mask;
  85.     int            timeout;
  86.     int            stat_flags;
  87.     int            custom_divisor;
  88.     int            close_delay;
  89.     unsigned short        closing_wait;
  90.     unsigned short        closing_wait2;
  91.     int            IER;     /* Interrupt Enable Register */
  92.     int            MCR;     /* Modem control register */
  93.     unsigned long        last_active;
  94.     int            line;
  95.     unsigned char         *xmit_buf;
  96.     int            xmit_head;
  97.     int            xmit_tail;
  98.     int            xmit_cnt;
  99.     wait_queue_head_t    delta_msr_wait;
  100.     wait_queue_head_t    break_wait;
  101.     struct async_icount    icount;    /* kernel counters for the 4 input interrupts */
  102.     struct hayes_esp_config config; /* port configuration */
  103.     struct esp_struct    *next_port; /* For the linked list */
  104. };
  105.  
  106. struct esp_pio_buffer {
  107.     unsigned char data[1024];
  108.     struct esp_pio_buffer *next;
  109. };
  110.  
  111. #endif /* __KERNEL__ */
  112.  
  113.  
  114. #endif /* ESP_H */
  115.  
  116.